package com.auth.cloud.common.result;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 返回状态码枚举
 *
 * @author auth-cloud
 * @since 2024-01-01
 */
@Getter
@AllArgsConstructor
public enum ResultCode {

    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 失败
     */
    ERROR(500, "操作失败"),

    /**
     * 参数错误
     */
    PARAM_ERROR(400, "参数错误"),

    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),

    /**
     * 禁止访问
     */
    FORBIDDEN(403, "禁止访问"),

    /**
     * 资源不存在
     */
    NOT_FOUND(404, "资源不存在"),

    /**
     * 方法不允许
     */
    METHOD_NOT_ALLOWED(405, "方法不允许"),

    /**
     * 请求超时
     */
    REQUEST_TIMEOUT(408, "请求超时"),

    /**
     * 服务器内部错误
     */
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),

    /**
     * 服务不可用
     */
    SERVICE_UNAVAILABLE(503, "服务不可用"),

    /**
     * 网关超时
     */
    GATEWAY_TIMEOUT(504, "网关超时"),

    /**
     * 用户名或密码错误
     */
    USERNAME_OR_PASSWORD_ERROR(1001, "用户名或密码错误"),

    /**
     * 用户不存在
     */
    USER_NOT_EXIST(1002, "用户不存在"),

    /**
     * 用户已存在
     */
    USER_ALREADY_EXIST(1003, "用户已存在"),

    /**
     * 用户被禁用
     */
    USER_DISABLED(1004, "用户被禁用"),

    /**
     * 用户被锁定
     */
    USER_LOCKED(1005, "用户被锁定"),

    /**
     * 密码错误
     */
    PASSWORD_ERROR(1006, "密码错误"),

    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1007, "验证码错误"),

    /**
     * 验证码过期
     */
    CAPTCHA_EXPIRED(1008, "验证码过期"),

    /**
     * Token无效
     */
    TOKEN_INVALID(1009, "Token无效"),

    /**
     * Token过期
     */
    TOKEN_EXPIRED(1010, "Token过期"),

    /**
     * 权限不足
     */
    PERMISSION_DENIED(1011, "权限不足"),

    /**
     * 角色不存在
     */
    ROLE_NOT_EXIST(1012, "角色不存在"),

    /**
     * 角色已存在
     */
    ROLE_ALREADY_EXIST(1013, "角色已存在");

    /**
     * 状态码
     */
    private final Integer code;

    /**
     * 状态信息
     */
    private final String message;
}
